package cn.ljy.uem.dao;

import cn.ljy.authority.dao.BaseMapper;
import cn.ljy.authority.model.SysUser;
import cn.ljy.uem.model.SchoolMajor;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.io.Serializable;
import java.util.List;

/**
 * 专业模块的数据层
 *
 * @author 小锋
 * @date 2022/07/18
 */
@Mapper
public interface SchoolMajorMapper extends BaseMapper<SchoolMajor> {

    /**
     * 根据专业名查找数据库中重名的专业
     * @param name
     * @return 返回重名数
     */
    @Select("select count(1) from school_major where name=#{name}")
    int countByName(String name);
//    /**
//     * 通过账户名和密码查找符合的账户数量
//     * @param username 账户名
//     * @param password 密码
//     * @return 返回找到的账户数
//     */
//    @Select("select count(1) from school_major where username=#{username} and password=#{password}")
//    int countByNameAndPassword(String username,String password);

    /**
     * 根据账户名查找唯一对应的账户
     * @param name
     * @return 如果没有找到返回null
     */
    @Select("select * from school_major where name=#{name}")
    SysUser findOneByName(String name);


    /**
     * 根据账户名查找数据库中重名的数量
     * @param name
     * @return 返回重名数
     */
    @Select("select count(1) from school_major where name=#{name} and id!=#{id}")
    int countByMajorNameAndIdNot(String name, Serializable id);


    /**
     * 获取表中符合条件的所有记录
     * 说明：如果查询条件为null，则表示查询所有记录
     * @return
     */
    @Select("select id from school_major where department_id=#{departmentId}")
    List<Integer> findIdByDepartmentId(Integer departmentId);


    /**
     * 王秋林 2022-12-19
     *查找学生相关联的班级name以便展示excel下拉框
     * @return {@link List}<{@link String}>
     */
    @Select("select name from school_major order by sort asc")
    List<String>  getMajorName();
}
